The Java Memory Model: Operationally, Denotationally, Axiomatically
نویسندگان
چکیده
A semantics to a small fragment of Java capturing the new memory model (JMM) described in the Language Specification is given by combining operational, denotational and axiomatic techniques in a novel semantic framework. The operational steps (specified in the form of SOS) construct denotational models (configuration structures) and are constrained by the axioms of a configuration theory. The semantics is proven correct with respect to the Language Specification and shown to capture many common examples in the JMM literature.
منابع مشابه
Higher-Order Horn Logic Programming
We describe a fragment of higher-order Horn logic which can be used as a higher-order extension of Prolog. It allows the programmer to axiomatize predicates of predicates and operations on predicates. The restrictions defining the fragment ensure that the higher-order predicates and operations defined are monotonic and continuous—that they are enumeration operators. As a result, the fragment is...
متن کاملA Generic Operational Memory Model Specification Framework for Multithreaded Program Verification
Given the complicated nature of modern architectural and language level memory model designs, it is vital to have a systematic approach for specifying memory consistency requirements that can support verification and promote understanding. In this paper, we develop a specification methodology that defines a memory model operationally using a generic transition system with integrated model check...
متن کاملSound and Complete Monitoring of Sequential Consistency for Relaxed Memory Models
We present a technique for verifying that a program has no executions violating sequential consistency (SC) when run under the relaxed memory models Total Store Order (TSO) and Partial Store Order (PSO). The technique works by monitoring sequentially consistent executions of a program to detect if similar program executions could fail to be sequentially consistent under TSO or PSO. We propose n...
متن کاملAnalyzing the CRF Java Memory Model
The current Java Memory Model [1] is flawed and has many unintended implications [2]. As multithreaded programming becomes increasingly popular in Java and hardware memory architectures become more aggressively parallel, it is of significant importance to provide a framework for formally analyzing the Java Memory Model. The Murφ verification system is applied to study the Commit/Reconcile/Fence...
متن کاملHiding the Java Memory Model with Compilers
The Java memory model is very diÆcult for programmers to understand, and there are several ways of interpreting the memory model. In addition, like most programming languages that follow the shared memory parallel programming model, non-deterministic behaviors due to data races can also occur in Java concurrent programs. Data races and synchronization make it impossible to apply classical compi...
متن کامل